﻿#define  _CRT_SECURE_NO_WARNINGS
/*#include<iostream>
using namespace std*/;

//class Time
//{
//public:
//	Time(int hour)
//		:_hour(hour)
//	{
//		cout << "Time()" << endl;
//	}
//private:
//	int _hour;
//};
//
//class Date
//{
//public:
//	Date(int& x, int year = 1, int month = 1, int day = 1)
//		:_year(year)
//		, _month(month)
//		, _day(day)
//		, _n(10)
//		, _ref(x)
//	{
//		
//	}
//
//	void Print() const
//	{
//		cout << _year << "-" << _month << "-" << _day << endl;
//	}
//private:
//	int _year;
//	int _month;
//	int _day;
//	const int _n;
//	int& _ref;
//	Time _t;
//};
//
//int main()
//{
//	int x = 0;
//	Date d1(x);
//	//d1.Print();
//
//	return 0;
//}

//class Time
//{
//public:
//	Time(int hour)
//		:_hour(hour)
//	{
//		cout << "Time()" << endl;
//	}
//private:
//	int _hour;
//};
//
//class Date
//{
//public:
//	Date()
//		:_month(2)
//	{
//		cout << "Date()" << endl;
//	}
//	void Print() const
//	{
//		cout << _year << "-" << _month << "-" << _day << endl;
//	}
//private:
//	// 注意这里不是初始化，这里给的是缺省值，这个缺省值是给初始化列表的
//	// 如果初始化列表没有显式初始化，默认就会用这个缺省值初始化
//	int _year = 1;
//	int _month = 1;
//	int _day;
//	Time _t = 1;
//	const int _n = 1;
//	int* _ptr = (int*)malloc(12);
//};
//
//int main()
//{
//	Date d1;
//	d1.Print();
//	return 0;
//}

//class A
//{
//public:
//	A(int a)
//		:_a1(a)
//		, _a2(_a1)
//	{}
//	void Print() {
//		cout << _a1 << " " << _a2 << endl;
//	}
//private:
//	int _a2 = 2;
//	int _a1 = 2;
//};
//
//int main()
//{
//	A aa(1);
//	aa.Print();
//}

//class A
//{
//public:
//	A(int a1)
//		:_a1(a1)
//	{}
//	
//	A(int a1, int a2)
//		:_a1(a1)
//		, _a2(a2)
//	{}
//
//	void Print()
//	{
//		cout << _a1 << " " << _a2 << endl;
//	}
//
//	int Get() const
//	{
//		return _a1 + _a2;
//	}
//private:
//	int _a1 = 1;
//	int _a2 = 2;
//};
//
//class B
//{
//public:
//	B(const A& a)
//		:_b(a.Get())
//	{}
//private:
//	int _b = 0;
//};
//
//int main()
//{
//	/*A aa1 = 1;
//	aa1.Print();
//	//
//	const A& aa2 = 1;*/
//
//	A aa3 = { 1, 2 };
//	aa3.Print();
//
//	B b = aa3;
//	const B& rb = aa3;
//
//	//const A& aa2 = 1;
//	//// C++11之后才⽀持多参数转化
//	//A aa3 = { 2,2 };
//	//// aa3隐式类型转换为b对象
//	//// 原理跟上⾯类似
//	//B b = aa3;
//	//const B& rb = aa3;
//	return 0;
//}

//class A
//{
//public:
//	A(int n)
//	{
//
//	}
//private:
//	int _a1;
//	int _a2;
//};
//
//class Stack
//{
//public:
//	Stack(int n = 4)
//	{
//		//...
//	}
//
//	void Push(const A& aa1)
//	{
//
//	}
//
//	~Stack()
//	{
//		//...
//	}
//private:
//	int* _a;
//	int _size;
//	int _capacity;
//};
//
//int main()
//{
//	Stack st1;
//	st1.Push(10);
//	return 0;
//}

#include<iostream>
using namespace std;

class A
{
public:
	A(int a = 0)
		:_a(a)
	{
		cout << "A(int a)" << endl;
	}

	~A()
	{
		cout << "~A()" << endl;
	}
private:
	int _a;
};

class Solution {
public:
	int Sum_Solution(int n) {
		//...
		return n;
	}
};

int main()
{
	//Solution s;
	//cout << s.Sum_Solution(1) << endl;;
	cout << Solution().Sum_Solution(1) << endl;
	return 0;
}

//class A
//{
//private:
//	static int _k;
//	int _h = 1;
//public:
//	class B // B默认是A的友元类
//	{
//	public:
//		void func(const A& aa)
//		{
//			cout << aa._h << endl;
//			cout << aa._k << endl;
//		}
//		int _b1;
//	};
//};
//
//int A::_k = 1;
//
//int main()
//{
//	A aa;
//	A::B bb;
//	bb.func(aa);
//	return 0;
//}

//// 前置声明
//class B;
//
//class A
//{
//	// 友元声明
//	friend void func(const A& aa, const B& bb);
//private:
//	int _a1 = 1;
//	int _a2 = 2;
//};
//class B
//{
//	// 友元声明
//	friend void func(const A& aa, const B& bb);
//private:
//	int _b1 = 3;
//	int _b2 = 4;
//};
//
//void func(const A& aa, const B& bb)
//{
//	cout << aa._a1 << endl;
//	cout << bb._b1 << endl;
//}

//class A
//{
//public:
//	A()
//	{
//		++_scount;
//	}
//
//	A(const A& t)
//	{
//		++_scount;
//	}
//
//	~A()
//	{
//		--_scount;
//	}
//
//	static int GetACount()
//	{
//		return _scount;
//	}
//private:
//	static int _scount;
//};
//// 类外面初始化
//int A::_scount = 0;
//
//int main()
//{
//	A aa;
//	return 0;
//}